package com.military.controller;

import com.military.pojo.MilitaryQueryParam;
import com.military.pojo.MilitaryStandard;
import com.military.pojo.PageResult;
import com.military.pojo.Result;
import com.military.service.MilitaryStandardService;
import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/military")
@Slf4j
public class MilitaryStandardController {

    @Autowired
    private MilitaryStandardService militaryStandardService;

//    /**
//     * 列表查询所有军标数据
//     * @return
//     */
//    @GetMapping()
//    public Result military(){
//       log.info("查询所有军标数据");
//
//        //查询要返回数据,就封装到list集合泛型中
//        List<MilitaryStandard> militarylist =militaryStandardService.findAll();
//
//        //因为是查询数据,所以返回是有数据
//        return Result.success(militarylist);
//    }

    /**
     * 分页查询军标数据
     * @return
     */
    @GetMapping()
    public Result page(Integer page, Integer pageSize){
        log.info("分页查询军标数据:{},{}",page,pageSize);
        PageResult<MilitaryStandard>pageResult = militaryStandardService.page(page,pageSize);
        return Result.success(pageResult);
    }


    /**
     * 条件分页查询军标数据
     * @return
     */
    @GetMapping("/pageId")
    public Result pageId(MilitaryQueryParam queryParam){
        log.info("分页查询军标数据:{}",queryParam);
        PageResult<MilitaryStandard> pageResult = militaryStandardService.pageId(queryParam);
        return Result.success(pageResult);
    }


    /**
     * 删除军标数据
     * @return
     */
//    @DeleteMapping("/delete")
//    public Result delete(HttpServletRequest request){//网址
//
//        //取网址中id参数,当前是字符串,需要进行转换成int类型
//        String idStr = request.getParameter("id");
//        int id = Integer.parseInt(idStr);
//        System.out.println("删除id为:"+id+"的军标数据");
//        return Result.success();
//    }

//    @DeleteMapping("/delete")
//    public Result delete(@RequestParam(value = "id",required = true) Integer deleteId){//默认为true,必须传递参数
//        System.out.println("删除id为:"+deleteId+"的军标数据");
//        return Result.success();
//    }
    @DeleteMapping()
    public Result delete(Integer id){//前端传递的请求参数和服务端请求参数名一直可省略@RequestParam
        log.info("删除id为: {}" ,id);
        militaryStandardService.deleteId(id);
        return Result.success();
    }

    /**
     * 添加军标数据
     * @return
     */
    @PostMapping()
    public Result add(@RequestBody MilitaryStandard militaryStandard){
        log.info("添加军标数据: {}" ,militaryStandard);
        militaryStandardService.add(militaryStandard);
        return Result.success();
    }

    /**
     * 根据id查询军标数据(回显数据)
     * @return
     */
//    @GetMapping("/{id}")
//    public Result getInfo(@PathVariable("id") Integer id){//前端传递的请求参数和服务端请求参数名一直可省略@PathVariable后面的("id")
//        System.out.println("根据id查询军标数据:" + id);
//        return Result.success();("id")
//    }
    @GetMapping("/{id}")
    public Result getInfo(@PathVariable Integer id){//前端传递的请求参数和服务端请求参数名一直可省略@PathVariable后面的("id")
      log.info("根据id查询军标数据: {}" , id);
        MilitaryStandard militaryStandard = militaryStandardService.getInfo(id);
        return Result.success(militaryStandard);
    }

    /**
     * 修改军标数据
     * @return
     */
    @PutMapping()
    public Result update(@RequestBody MilitaryStandard militaryStandard){
        log.info("修改军标数据:{}",  militaryStandard);
        militaryStandardService.update(militaryStandard);
        return Result.success();
    }
}
